/**
 * KDJ指标
        n日RSV=（Cn－Ln）/（Hn－Ln）×100
		公式中，Cn为第n日收盘价；Ln为n日内的最低价；Hn为n日内的最高价。
		其次，计算K值与D值：
		当日K值=2/3×前一日K值+1/3×当日RSV
		当日D值=2/3×前一日D值+1/3×当日K值
		若无前一日K 值与D值，则可分别用50来代替。
		J值=3*当日K值-2*当日D值
 */
let KDJ={
    getKDJ:function(selYear,day){
		let kdj = {k:[],d:[],j:[]};
	
		for(let i = 0;i<selYear.length;i++){
			if(i<day){
				kdj.k.push(50);
				kdj.d.push(50);
				kdj.j.push(this.getJ(50,50));
			} else{
				let item = Utils.vo(selYear[i]);
				let dayRam = selYear.slice(i-day,i);
				let maxMin = Utils.getMinMaxAvg(dayRam,2,3);
				let rsv = this.getRSV(item.close,maxMin.min,maxMin.max);
				let kVal = this.getK(kdj.k[i-1],rsv);
				let dVal = this.getD(kdj.d[i-1],kVal);
				let jVal = this.getJ(kVal,dVal);
				kdj.k.push(kVal);
				kdj.d.push(dVal);
				kdj.j.push(jVal);
				
			}
		}
		return kdj;
	},
	getK:function(preK,rsv){
		let  k = preK*(2/3)+rsv*(1/3);
		return k;
	},
	getD:function(preD,k){
		let d = preD*(2/3)+k*(1/3);
		return d;
	},
	getJ:function(k,d){
		let j = 3*k+2*d;
		return j;
	},
	getRSV:function(Cn,Ln,Hn){
		let rsv = (Cn-Ln)/(Hn-Ln)* 100;
		return rsv;
	},
	
}